<!DOCTYPE html>
<html lang="zh_cn">
<head>
          <title>来玩魔王的咚</title>
        <meta name="viewport" content="width=device-width, initial-scale=1" />
        <meta charset="utf-8" />
        <!-- twitter card metadata -->
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="/images/mowang.png">
<meta name="twitter:site" content="">
<meta name="twitter:title" content="VS Code 扩展">
<meta name="twitter:description" content="<p>记录 VS Code 用到的扩展和设置</p>">
        <!-- OG Tags -->
<meta property="og:url" content="/vscode-extensions.html"/>
<meta property="og:title" content="来玩魔王的咚 | VS Code 扩展" />
<meta property="og:description" content="<p>记录 VS Code 用到的扩展和设置</p>" />
        <!-- favicon -->
        <link rel="icon" type="image/png" href="/images/mowang.png">
        <!-- moment.js for date formatting -->
        <script src="/theme/js/moment.js"></script>
        <!-- css -->
        <link rel="stylesheet" type="text/css" href="/theme/css/main.css" />
        <!-- 左边的menu，如果页面高度不够，就跟着滚动，否则文章分类显示不全 -->
        <link rel="stylesheet" type="text/css" href="/theme/css/mycss/menu.css" />
		<script>
			
                /*! grunt-grunticon Stylesheet Loader - v2.1.2 | https://github.com/filamentgroup/grunticon | (c) 2015 Scott Jehl, Filament Group, Inc. | MIT license. */
    
    (function(e){function t(t,n,r,o){"use strict";function a(){for(var e,n=0;u.length>n;n++)u[n].href&&u[n].href.indexOf(t)>-1&&(e=!0);e?i.media=r||"all":setTimeout(a)}var i=e.document.createElement("link"),l=n||e.document.getElementsByTagName("script")[0],u=e.document.styleSheets;return i.rel="stylesheet",i.href=t,i.media="only x",i.onload=o||null,l.parentNode.insertBefore(i,l),a(),i}var n=function(r,o){"use strict";if(r&&3===r.length){var a=e.navigator,i=e.Image,l=!(!document.createElementNS||!document.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect||!document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Image","1.1")||e.opera&&-1===a.userAgent.indexOf("Chrome")||-1!==a.userAgent.indexOf("Series40")),u=new i;u.onerror=function(){n.method="png",n.href=r[2],t(r[2])},u.onload=function(){var e=1===u.width&&1===u.height,a=r[e&&l?0:e?1:2];n.method=e&&l?"svg":e?"datapng":"png",n.href=a,t(a,null,null,o)},u.src="",document.documentElement.className+=" grunticon"}};n.loadCSS=t,e.grunticon=n})(this);(function(e,t){"use strict";var n=t.document,r="grunticon:",o=function(e){if(n.attachEvent?"complete"===n.readyState:"loading"!==n.readyState)e();else{var t=!1;n.addEventListener("readystatechange",function(){t||(t=!0,e())},!1)}},a=function(e){return t.document.querySelector('link[href$="'+e+'"]')},c=function(e){var t,n,o,a,c,i,u={};if(t=e.sheet,!t)return u;n=t.cssRules?t.cssRules:t.rules;for(var l=0;n.length>l;l++)o=n[l].cssText,a=r+n[l].selectorText,c=o.split(");")[0].match(/US\-ASCII\,([^"']+)/),c&&c[1]&&(i=decodeURIComponent(c[1]),u[a]=i);return u},i=function(e){var t,o,a;o="data-grunticon-embed";for(var c in e)if(a=c.slice(r.length),t=n.querySelectorAll(a+"["+o+"]"),t.length)for(var i=0;t.length>i;i++)t[i].innerHTML=e[c],t[i].style.backgroundImage="none",t[i].removeAttribute(o);return t},u=function(t){"svg"===e.method&&o(function(){i(c(a(e.href))),"function"==typeof t&&t()})};e.embedIcons=i,e.getCSS=a,e.getIcons=c,e.ready=o,e.svgLoadedCallback=u,e.embedSVG=u})(grunticon,this);
                
                grunticon(["/theme/css/icons.data.svg.css", "/theme/css/icons.data.png.css", "/theme/css/icons.fallback.css"]);
            </script>
        <noscript><link href="/theme/css/icons.fallback.css" rel="stylesheet"></noscript>
        <!-- menu toggle javascript -->
        <script type="text/javascript">
            document.addEventListener("DOMContentLoaded", initMenu);
            
            function initMenu(){
                var menu = document.getElementById("menu");
                var menulink = document.getElementById("menu-link");
                menulink.addEventListener("click", function toggleMenu(){
                        window.event.preventDefault();
                        menulink.classList.toggle('active');
                        menu.classList.toggle('active');              
                    });
            };
        </script>
        <!-- 不蒜子 -->
        <script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>

    <meta name="description" content="<p>记录 VS Code 用到的扩展和设置</p>" />

    <meta name="tags" content="vscode" />
  <!-- 替换部分base的样式，看文章时，要再宽一点，右边有很多空间可以撑开 -->
  <link rel="stylesheet" type="text/css" href="/theme/css/mycss/article.css" />

</head>
<body>
    <div role="banner" id="masthead">
        <header>
            <a href="/"><img src="/images/mowang.png" alt="McManus Logo"></a>
                <h1>来玩魔王的咚@骑士救兵</h1>
            <a href="#menu" id="menu-link">more stuff</a>
            <nav id="menu">
                <ul>
                        <li><a href="/tags">tags</a></li>
                            <li><a href="/category/cloud.html">Cloud</a></li>
                            <li><a href="/category/docker.html">Docker</a></li>
                            <li><a href="/category/go.html">Go</a></li>
                            <li><a href="/category/linux.html">Linux</a></li>
                            <li><a href="/category/python.html">Python</a></li>
                            <li class="active"><a href="/category/xue-xi-bi-ji.html">学习笔记</a></li>
                            <li><a href="/category/yun-wei-zi-dong-hua.html">运维自动化</a></li>
                </ul>
            </nav>
        </header>
    </div>
        <div class="page" role="main">
  <div class="article" role="article">
    <article>
        <footer>
            <a name="top"></a>
            <p>
              <time datetime=" 2020-09-29 14:00:00+08:00">
                <script>document.write(moment('2020-09-29 14:00:00+08:00').format('LL'));</script>
              </time>
              ~
              <time datetime=" 2020-09-29 14:00:00+08:00">
                <script>document.write(moment('2024-03-14 09:48:00+08:00').format('LL'));</script>
              </time>
            </p>
        </footer>
        <header>
          <h2>
            VS Code 扩展
          </h2>
        </header>
      <div class="content">
         <div class="toc">
<ul>
<li><a href="#chang-yong-cha-jian">常用插件</a></li>
<li><a href="#remote-development">Remote Development</a></li>
<li><a href="#zhu-ti-she-zhi">主题设置</a></li>
<li><a href="#vscode-animations">VSCode Animations</a></li>
<li><a href="#vscode-fileheader">vscode-fileheader</a></li>
<li><a href="#korofileheader">koroFileHeader</a></li>
<li><a href="#markdown-preview-enhanced">Markdown Preview Enhanced</a></li>
<li><a href="#pylance">Pylance</a><ul>
<li><a href="#lei-xing-zhu-jie">类型注解</a></li>
</ul>
</li>
<li><a href="#kite-autocomplete-for-python-and-javascript">Kite Autocomplete for Python and JavaScript</a></li>
<li><a href="#arepl-for-python">AREPL for python</a></li>
<li><a href="#python-test-explorer-for-visual-studio-code">Python Test Explorer for Visual Studio Code</a></li>
<li><a href="#ansible">Ansible</a></li>
<li><a href="#sqlite">SQLite</a></li>
<li><a href="#shu-ju-ku">数据库</a><ul>
<li><a href="#sqltools">SQLTools</a></li>
<li><a href="#mongodb-for-vs-code">MongoDB for VS Code</a></li>
<li><a href="#redis">Redis</a></li>
</ul>
</li>
<li><a href="#command-runner">Command Runner</a></li>
<li><a href="#project-manager">Project Manager</a></li>
<li><a href="#vscode-mindmap">vscode-mindmap</a></li>
<li><a href="#xiao-cheng-xu">小程序</a></li>
</ul>
</div>
<p>习惯叫插件（plugin），但官方的名字是扩展（extensions）。  </p>
<h3 id="chang-yong-cha-jian"><a class="toclink" href="#chang-yong-cha-jian">常用插件</a></h3>
<p><strong>Chinese (Simplified) Language Pack for Visual Studio Code</strong><br>
适用于 VS Code 的中文（简体）语言包。  </p>
<p><strong>Python</strong><br>
Python extension for Visual Studio Code  </p>
<p><strong>Go</strong><br>
Go for Visual Studio Code  </p>
<p><strong>HTML CSS Support</strong>
提供「html」和「css」的代码高亮和提示  </p>
<p><strong>JavaScript (ES6) code snippets</strong>
「vscode」本身有内置「js」的代码提示，装一个「JavaScript (ES6) code snippets」用来提示代码片段。  </p>
<h3 id="remote-development"><a class="toclink" href="#remote-development">Remote Development</a></h3>
<p>安装 Remote Development 的时候，下面这些都一起装上了：</p>
<ul>
<li>Remote - Containers</li>
<li>Remote - SSH</li>
<li>Remote - SSH: Editing Configuration Files</li>
<li>Remote - WSL</li>
<li>Remote Development</li>
</ul>
<p>我主要是用来通过SSH连接到远程主机上的文件，并在本地VS Code上编辑。一般都是远程到Linux系统，简单的修改就直接用vi。有这个工具就不用掌握那些复杂的vi操作了。  </p>
<h3 id="zhu-ti-she-zhi"><a class="toclink" href="#zhu-ti-she-zhi">主题设置</a></h3>
<p>更换主题设置：文件-&gt;首选项-&gt;颜色主题<br>
下载的主题：</p>
<ol>
<li>Feel Good LY</li>
</ol>
<h3 id="vscode-animations"><a class="toclink" href="#vscode-animations">VSCode Animations</a></h3>
<p>为VSCode添加动画效果。使UI变的丝滑，提升使用体验。  </p>
<h3 id="vscode-fileheader"><a class="toclink" href="#vscode-fileheader">vscode-fileheader</a></h3>
<p>insert header comment,and automatically update the time.<br>
更能简单，设置也很简单：</p>
<div class="highlight"><pre><span></span><code><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="nt">&quot;fileheader.Author&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;749B&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w">    </span><span class="nt">&quot;fileheader.LastModifiedBy&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;749B&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w">    </span><span class="nt">&quot;fileheader.tpl&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;#!/usr/bin/env python\r\n# Create: {createTime}\r\n__author__ = &#39;{author}&#39;\r\n\r\n\r\n&quot;</span><span class="p">,</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>

<p>需要的时候，按 Ctrl+Alt+i 就会在头部插入。<br>
只有一种格式，如果多种语言需要不同的格式，就没办啊了。下面的插件功能更强大。  </p>
<h3 id="korofileheader"><a class="toclink" href="#korofileheader">koroFileHeader</a></h3>
<p>在vscode中用于生成文件头部注释和函数注释的插件，经过多版迭代后，插件：支持所有主流语言,功能强大，灵活方便，文档齐全，食用简单！<br>
设置后之后，能自动加上头部注释。也可以手动用快捷键 Ctrl+Alt+i 。<br>
保存文件的时候，自动更新最后的编辑时间和编辑人。<br>
设置如下(<em>json不支持注释，丑就丑点吧</em>)：</p>
<div class="highlight"><pre><span></span><code><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="nt">&quot;fileheader.customMade&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">  </span><span class="c1">// 头部注释</span><span class="w"></span>
<span class="w">        </span><span class="nt">&quot;Date&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;Do not edit&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w">        </span><span class="nt">&quot;LastEditTime&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;Do not edit&quot;</span><span class="w"></span>
<span class="w">    </span><span class="p">},</span><span class="w"></span>
<span class="w">    </span><span class="nt">&quot;fileheader.configObj&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">        </span><span class="nt">&quot;createFileTime&quot;</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w"></span>
<span class="w">        </span><span class="nt">&quot;annotationStr&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">  </span><span class="c1">// 默认注释形式</span><span class="w"></span>
<span class="w">            </span><span class="nt">&quot;head&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;/*&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w">            </span><span class="nt">&quot;middle&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot; * @&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w">            </span><span class="nt">&quot;end&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot; */&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w">            </span><span class="nt">&quot;use&quot;</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="w"></span>
<span class="w">        </span><span class="p">},</span><span class="w"></span>
<span class="w">        </span><span class="nt">&quot;language&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">            </span><span class="nt">&quot;py&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">                </span><span class="nt">&quot;head&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;# -*- coding: utf-8 -*-&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w">                </span><span class="nt">&quot;middle&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;# &quot;</span><span class="p">,</span><span class="w"></span>
<span class="w">                </span><span class="nt">&quot;end&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;\&quot;\&quot;\&quot;说明暂无\&quot;\&quot;\&quot;&quot;</span><span class="w"></span>
<span class="w">            </span><span class="p">},</span><span class="w"></span>
<span class="w">        </span><span class="p">},</span><span class="w"></span>
<span class="w">        </span><span class="nt">&quot;autoAdd&quot;</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w">   </span><span class="c1">// 自动添加文件头部注释</span><span class="w"></span>
<span class="w">        </span><span class="nt">&quot;autoAddLine&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">20</span><span class="p">,</span><span class="w"> </span><span class="c1">// 文件超过一定行数不再自动添加头部注释</span><span class="w"></span>
<span class="w">        </span><span class="nt">&quot;autoAlready&quot;</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w"></span>
<span class="w">        </span><span class="nt">&quot;headInsertLine&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">            </span><span class="nt">&quot;php&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="w"></span>
<span class="w">        </span><span class="p">},</span><span class="w"></span>
<span class="w">        </span><span class="nt">&quot;beforeAnnotation&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">            </span><span class="nt">&quot;文件后缀&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;该文件后缀的头部注释之前添加某些内容&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w">            </span><span class="nt">&quot;py&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;#!/usr/bin/env python&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w">        </span><span class="p">},</span><span class="w"></span>
<span class="w">        </span><span class="nt">&quot;afterAnnotation&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">            </span><span class="nt">&quot;文件后缀&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;该文件后缀的头部注释之后添加某些内容&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w">            </span><span class="nt">&quot;py&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;__author__ = &#39;749B&#39;\n\n&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w">        </span><span class="p">},</span><span class="w"></span>
<span class="w">        </span><span class="nt">&quot;specialOptions&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">            </span><span class="nt">&quot;特殊字段&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;自定义比如LastEditTime/LastEditors&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w">            </span><span class="nt">&quot;Date&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;Create&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w">            </span><span class="nt">&quot;LastEditTime&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;LastEdit&quot;</span><span class="w"></span>
<span class="w">        </span><span class="p">},</span><span class="w"></span>
<span class="w">        </span><span class="nt">&quot;switch&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">            </span><span class="nt">&quot;newlineAddAnnotation&quot;</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="w"></span>
<span class="w">        </span><span class="p">},</span><span class="w"></span>
<span class="w">        </span><span class="nt">&quot;supportAutoLanguage&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">&quot;py&quot;</span><span class="p">],</span><span class="w">     </span><span class="c1">// 自动添加头部注释文件白名单</span><span class="w"></span>
<span class="w">        </span><span class="nt">&quot;prohibitAutoAdd&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">&quot;json&quot;</span><span class="p">,</span><span class="w"> </span><span class="s2">&quot;md&quot;</span><span class="p">],</span><span class="w"> </span><span class="c1">// 自动添加头部注释黑名单</span><span class="w"></span>
<span class="w">        </span><span class="nt">&quot;prohibitItemAutoAdd&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"></span>
<span class="w">            </span><span class="s2">&quot;项目的全称, 整个项目禁止自动添加头部注释, 可以使用快捷键添加&quot;</span><span class="w"></span>
<span class="w">        </span><span class="p">],</span><span class="w"></span>
<span class="w">        </span><span class="nt">&quot;moveCursor&quot;</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w"></span>
<span class="w">        </span><span class="nt">&quot;dateFormat&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;YYYY-MM-DD HH:mm:ss&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w">        </span><span class="nt">&quot;atSymbol&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;@&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w">        </span><span class="nt">&quot;atSymbolObj&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">            </span><span class="nt">&quot;文件后缀&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;修改它的@符号&quot;</span><span class="w"></span>
<span class="w">        </span><span class="p">},</span><span class="w"></span>
<span class="w">        </span><span class="nt">&quot;colon&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;: &quot;</span><span class="p">,</span><span class="w"></span>
<span class="w">        </span><span class="nt">&quot;colonObj&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">            </span><span class="nt">&quot;文件后缀&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;修改它的冒号&quot;</span><span class="w"></span>
<span class="w">        </span><span class="p">},</span><span class="w"></span>
<span class="w">        </span><span class="nt">&quot;filePathColon&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;路径分隔符替换&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w">        </span><span class="nt">&quot;showErrorMessage&quot;</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w"></span>
<span class="w">        </span><span class="nt">&quot;wideSame&quot;</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w"></span>
<span class="w">        </span><span class="nt">&quot;wideNum&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">13</span><span class="p">,</span><span class="w"></span>
<span class="w">        </span><span class="nt">&quot;CheckFileChange&quot;</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w"></span>
<span class="w">        </span><span class="nt">&quot;createHeader&quot;</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w">  </span><span class="c1">// 新建文件自动添加头部注释</span><span class="w"></span>
<span class="w">        </span><span class="nt">&quot;useWorker&quot;</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w"></span>
<span class="w">        </span><span class="nt">&quot;typeParam&quot;</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w"></span>
<span class="w">        </span><span class="nt">&quot;designAddHead&quot;</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w"></span>
<span class="w">        </span><span class="nt">&quot;headDesignName&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;random&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w">        </span><span class="nt">&quot;headDesign&quot;</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="w"></span>
<span class="w">    </span><span class="p">},</span><span class="w"></span>
<span class="w">    </span><span class="nt">&quot;fileheader.cursorMode&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">  </span><span class="c1">// 函数注释，暂时没用到</span><span class="w"></span>
<span class="w">    </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>

<p>"prohibitAutoAdd": ["json", "md"]，这里设置了不需要自动加注释的黑名单。<br>
"createHeader": false 这项默认是开启的，也很有用。之后遇到了新建的markdown文件会立刻自动添加注释，上面的黑名单似乎只能阻止文件打开后的动作，而这个选项似乎是创建文件执行。总是上面的黑名单没用了，只能把这个选项关掉了。  </p>
<h3 id="markdown-preview-enhanced"><a class="toclink" href="#markdown-preview-enhanced">Markdown Preview Enhanced</a></h3>
<p>Markdown Preview Enhanced 是一款为 Atom 以及 Visual Studio Code 编辑器编写的超级强大的 Markdown 插件。 这款插件意在让你拥有飘逸的 Markdown 写作体验。<br>
用来预览markdown。  </p>
<h3 id="pylance"><a class="toclink" href="#pylance">Pylance</a></h3>
<p>微软出的工具，官方定性为Python语言服务器（Language Server）。<br>
安装后会询问是否设置为默认的语言服务器，选No也没有关系，之后可以手动调整。<br>
打开设置，搜索<code>Language Server</code>，有Jedi（默认），Pylance，Microsoft，None，这里可以选。  </p>
<h4 id="lei-xing-zhu-jie"><a class="toclink" href="#lei-xing-zhu-jie">类型注解</a></h4>
<p>Pylance有类型检查的功能，但默认是关闭的，去插件的扩展设置里找到选项，默认是off（关闭），还有basic（基础）和strict（严格）。具体还是附上插件的说明：</p>
<ul>
<li>basic: Non-type checking-related rules (all rules in off) + basic type checking rules</li>
<li>strict: All type checking rules at the highest severity of error (includes all rules in off and basic categories)</li>
</ul>
<h3 id="kite-autocomplete-for-python-and-javascript"><a class="toclink" href="#kite-autocomplete-for-python-and-javascript">Kite Autocomplete for Python and JavaScript</a></h3>
<p>编写python的神器。  </p>
<h3 id="arepl-for-python"><a class="toclink" href="#arepl-for-python">AREPL for python</a></h3>
<p>实时自动执行代码。可以展示输出以及变量。在调试API，或使用requests模块的的时候尤其方便。<br>
用了之后，不用debug也不用手动执行代码，有些结果通过这个插件看到效果。  </p>
<h3 id="python-test-explorer-for-visual-studio-code"><a class="toclink" href="#python-test-explorer-for-visual-studio-code">Python Test Explorer for Visual Studio Code</a></h3>
<p>如果使用 Unittest 或 Pytest 来做测试，建议安装上这个插件。  </p>
<h3 id="ansible"><a class="toclink" href="#ansible">Ansible</a></h3>
<p>编写Ansible的插件，可以直接把模块的所有参数带着说明都打出来，然后可以看着说明来设置。<br>
由于都是yaml文件，不能根据扩展名来关联。需要设置一下，哪些文件需要关联ansible：</p>
<div class="highlight"><pre><span></span><code><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="nt">&quot;files.associations&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">        </span><span class="nt">&quot;**/tasks/*.yml&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;ansible&quot;</span><span class="w"></span>
<span class="w">    </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>

<h3 id="sqlite"><a class="toclink" href="#sqlite">SQLite</a></h3>
<p><strong>SQLite Viewer</strong><br>
SQLite Viewer for VSCode<br>
仅仅只要浏览数据，这个用起来更方便，体验更好。<br>
插件安装好之后，点开文件就能看了。  </p>
<p><strong>SQLite</strong>
Explore and query SQLite databases.<br>
这个不但能看，也能执行语句。但是首先要连接数据库，所以看起来没有上面那个方便。建议先安装Viewer，如果还需要执行语句，再安装这个工具作为补充。<br>
首先，连接数据库。SQLite: Open Database。连接之后在左边侧边栏的底下，可以看到已连接的数据库。然后可以点开查看内容。<br>
在库或者表上右键New Query，会打开一个编辑器，可以编写你的语句，然后Run Query。  </p>
<h3 id="shu-ju-ku"><a class="toclink" href="#shu-ju-ku">数据库</a></h3>
<p>数据库可视化工具有「navicat」、「dbeaver」。但是VSCode有自己的插件使用也能做到类型的效果。  </p>
<h4 id="sqltools"><a class="toclink" href="#sqltools">SQLTools</a></h4>
<p>这个插件支持的数据库种类很多,日常开发需要的数据库基本上都可以覆盖到。  </p>
<h4 id="mongodb-for-vs-code"><a class="toclink" href="#mongodb-for-vs-code">MongoDB for VS Code</a></h4>
<p>上面那个插件中没有 「mongodb」的插件。用这个来补充。  </p>
<h4 id="redis"><a class="toclink" href="#redis">Redis</a></h4>
<p>具体的效果和 「SQLTools」差不多。</p>
<h3 id="command-runner"><a class="toclink" href="#command-runner">Command Runner</a></h3>
<p>vscode custom shell command runner<br>
把命令写在配置文件settings.json中，以后右键就可以选名称然后在终端中执行了：</p>
<div class="highlight"><pre><span></span><code><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="c1">// Command Runner: 右键选择命令，在终端执行</span><span class="w"></span>
<span class="w">    </span><span class="nt">&quot;command-runner.commands&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">        </span><span class="nt">&quot;Django: Shell&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;python manage.py shell&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w">        </span><span class="nt">&quot;Django: migrate&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;python manage.py migrate&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w">        </span><span class="nt">&quot;Django: makemigrations&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;python manage.py makemigrations&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w">    </span><span class="p">},</span><span class="w"></span>
<span class="w">    </span><span class="nt">&quot;command-runner.terminal.autoClear&quot;</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w"></span>
<span class="p">}</span><span class="w">    </span>
</code></pre></div>

<h3 id="project-manager"><a class="toclink" href="#project-manager">Project Manager</a></h3>
<p>可以保存项目，方便下次打开项目。适合在项目多的情况下使用。  </p>
<h3 id="vscode-mindmap"><a class="toclink" href="#vscode-mindmap">vscode-mindmap</a></h3>
<p>画流程图、思维导图。只要创建.km文件就可以，还支持打开.xmid文件。  </p>
<h3 id="xiao-cheng-xu"><a class="toclink" href="#xiao-cheng-xu">小程序</a></h3>
<p>如果平常开发主要用到的是「Uniapp」，这里是偏向「uniapp」的插件类型。  </p>
<p><strong>uni-helper</strong><br>
这个插件是一个拓展包会把其他和「uniapp」有关的插件也安装下来。提供「uniapp」标签的代码提示，代码高亮等相关功能。  </p>
      </div>
      <div class="back-to-top">
        <a href="/">HOME</a>
        <a href="#top">TOP</a>
      </div>
    </article>
  </div>
<!-- end article -->
<!-- 页面往下滚动一段之后才会显示TOC -->
<script>
  window.onscroll = function() {
    var tocbox = document.getElementsByClassName('toc')[0];
    var osTop = document.documentElement.scrollTop || document.body.scrollTop;
    var osWidth = document.documentElement.scrollWidth || document.body.scrollWidth;
    // console.log(osTop)
    if (osTop>300 && osWidth>865) {
      tocbox.style.display = "block"
    }
    if (osTop<300 || osWidth<865) {
      tocbox.style.display = "none"
    }
  }
</script>
                <footer>
                    <div class="icons">
                    </div>
                    <span id="busuanzi_container_page_pv" style="padding: 10px">本文阅读量<span id="busuanzi_value_page_pv"></span>次</span>
                    <span id="busuanzi_container_site_pv" style="padding: 10px">本站总访问量<span id="busuanzi_value_site_pv"></span>次</span>
                    <span id="busuanzi_container_site_uv" style="padding: 10px">本站总访客数<span id="busuanzi_value_site_uv"></span>人</span>
                    <p>© <script>document.write(moment().format('YYYY'));</script> 749B</p>
                </footer>
        </div>
</body>
</html>